package openation;

import book.Book;
import book.BookList;

import java.util.Scanner;

/**
 * 创建一个删除图书的类DeleteOperation，继承接口IOperation
 * 重写接口中的work方法来实现删除图书的操作
 * 1给出提示删除图书，整型变量currentCount用来获取接收当前bookList.getCount()的下标
 * 2判断书架是否存在书籍，没有书籍直接返回
 * 3输入要删除的书名，设置一个整型变量index，值为负数
 * 4遍历数组，创建一个Book类的book用来接收当前下标的书籍，通过书名来判断是否存在与书架中
 * 5如果存在则把下标i给index跳出循环，不存在相同书名的则提示书籍不存在
 * 6通过循环，从index开始把数组下标的后一位给前一位，做到覆盖 = 删除，每次存在setBook方法中
 * 7把计数器count往前移动一位
 */
public class DeleteOperation implements IOperation{

    @Override
    public void work(BookList bookList) {

        System.out.println("请输入需要删除的图书：");

        int currentCount = bookList.getCount();

        if(currentCount == 0) {

            System.out.println("书架为空，无法删除");

            return;
        }

        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入书名:");

        String name = scanner.nextLine();

        int  index = -1;

        for (int i = 0; i < currentCount; i++) {
            Book book = bookList.getBook(i);
            if(book.getName().equals(name)) {
                index = i;
                break;
            }

        }
        if(index == -1) {
            System.out.println("暂时不存在这本书");
            return;
        }
        for (int i = index; i < currentCount-1; i++) {
            Book book = bookList.getBook(i + 1);
            bookList.setBook(i,book);
        }
        System.out.println("图书删除成功");
        bookList.setCount(currentCount-1);
    }
}
